package com.whfc.fmam.dao;

import com.whfc.fmam.entity.bo.FmamMatType;
import com.whfc.fmam.entity.dto.FmamMatTypeDTO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.Date;
import java.util.List;

@Repository
public interface FmamMatTypeMapper {
    int deleteByPrimaryKey(Long id);

    int insert(FmamMatType record);

    int insertSelective(FmamMatType record);

    FmamMatType selectByPrimaryKey(Long id);

    int updateByPrimaryKeySelective(FmamMatType record);

    int updateByPrimaryKey(FmamMatType record);

    /**
     * 查询同步材料类别列表
     *
     * @param deptId
     * @param lastSyncTime
     * @return
     */
    List<FmamMatType> selectSyncMatTypeList(@Param("deptId") Integer deptId, @Param("lastSyncTime") Date lastSyncTime);

    /**
     * 根据组织机构获取所有的材料类别
     *
     * @param deptId
     * @param keyword
     * @return
     */
    List<FmamMatTypeDTO> selectMatTypeList(@Param("deptId") Integer deptId, @Param("keyword") String keyword);

    /**
     * 根据code查询
     *
     * @param fullCode
     * @return
     */
    FmamMatType selectByFullCodeAndDeptId(@Param("fullCode") String fullCode, @Param("deptId") Integer deptId);

    /**
     * 根据pid查找
     *
     * @param pid
     * @return
     */
    List<FmamMatType> selectByPid(@Param("pid") Long pid);

    /**
     * 逻辑删除
     *
     * @param id
     */
    int deleteLogicById(@Param("id") Long id);

    /**
     * 修改材料类别偏差
     *
     * @param ids
     */
    int updateDiffByPid(@Param("ids") List<Long> ids,
                        @Param("diffType") Integer diffType,
                        @Param("plusDiff") Double plusDiff,
                        @Param("minusDiff") Double minusDiff);

}